//角色管理模块的接口
import request from '@/utils/request'
import type { RoleResponseData, RoleData, MenuResponseData } from './type'

enum API {
  //获取全部角色
  ALLROLE_URL = '/admin/acl/role/',
  //添加角色
  ADDROLE_URL = '/admin/acl/role/save',
  //更新角色
  UPDATEROLE_URL = '/admin/acl/role/update',
  //根据角色获取菜单或按钮权限
  ALLPERMISSION_URL = '/admin/acl/permission/toAssign/',
  //给角色分配权限
  SETPERMISSION_URL = '/admin/acl/permission/doAssign/?',
  //删除角色
  REMOVEROLE_URL = '/admin/acl/role/remove/'
}

//获取全部角色
export const reqAllRoleList = (page: number, limit: number, roleName: string) =>
  request.get<any, RoleResponseData>(API.ALLROLE_URL + `${page}/${limit}?roleName=${roleName}`)

//添加或更新角色
export const reqAddOrUpdateRole = (data: RoleData) => {
  if (data.id) {
    return request.put<any, any>(API.UPDATEROLE_URL, data)
  } else {
    return request.post<any, any>(API.ADDROLE_URL, data)
  }
}
//根据角色获取菜单或按钮权限
export const reqAllMenuList = (roleId: number) =>
  request.get<any, MenuResponseData>(API.ALLPERMISSION_URL + roleId)

//给角色分配权限
export const reqSetPermission = (roleId: number, permissionId: number[]) =>
  request.post<any, any>(API.SETPERMISSION_URL + `roleId=${roleId}&permissionId=${permissionId}`)

//删除角色
export const reqRemoveRole = (roleId: number) =>
  request.delete<any, any>(API.REMOVEROLE_URL + roleId)
